// hooks 封装逻辑，提供响应式数据。
import {useIntersectionObserver} from '@vueuse/core'
import dayjs from "dayjs";
import {useIntervalFn} from "@vueuse/shared";

// 数据懒加载函数
export function useLazyData(apiFn, target, dataBlock) {

    const {stop} = useIntersectionObserver(
        target,
        ([{isIntersecting}], observerElement) => {
            if (isIntersecting) {
                stop()
                console.log('进入可视区===')
                // 调用API获取数据
                apiFn().then(data => {
                    dataBlock(data.result)
                })
            }
        }, {
            threshold: 0
        }
    )

}

/**
 * 支付倒计时函数
 */
export function usePayTime(time, dataBlock) {

    let timeText = dayjs.unix(time).format('mm分ss秒')
    const {pause, resume} = useIntervalFn(() => {
        time--
        timeText = dayjs.unix(time).format('mm分ss秒')
        if (time <= 0) {
            pause()
        }
        dataBlock(timeText)
    }, 1000, false)
    // 开启定时器 countdown 倒计时时间
    resume()
    dataBlock(timeText)

}